#!/usr/bin/perl

use CGI qw(:standard);
use LWP::Simple qw(get);
use LWP::UserAgent;
use XML::XPath;
use XML::Simple;
use XML::XPath::XMLParser;
use HTTP::Request;

my $nuevouser = param('new');
my $nombre = param('nombre');
my $latitud = param('lat');
my $longitud = param('long');
my $xmlmod;

my $url = 'http://localhost:8080/exist/rest//db/proyecto_aap/usuarios.xml';

if ($nuevouser == 1) {
	my $xmlin = XML::XPath->new(get($url));
	my @users = $xmlin->findnodes("/datos/usuario");
	my $nuevapos = $#users+1;
	my $nuevoatr = $#users+2;

	$xmlmod = <<EOC;
<?xml version="1.0"?> 
 <xupdate:modifications version="1.0"
                xmlns:xupdate="http://www.xmldb.org/xupdate"> 

   <xupdate:insert-after select="/datos/usuario[$nuevapos]" > 

     <xupdate:element name="usuario">
       <xupdate:attribute name="numero">$nuevoatr</xupdate:attribute>
       <nombre>$nombre</nombre> 
       <latitud>$latitud</latitud> 
       <longitud>$longitud</longitud>
     </xupdate:element> 

   </xupdate:insert-after> 
 </xupdate:modifications> 
EOC
}	else {
		my $usuario = 0;
		my $xml = XMLin(get($url));
		my @users = @{$xml->{'usuario'}};
		for ($i = 0; $i <= $#users; $i++) {
			if ($users[$i]->{'nombre'} =~ $nombre) {
				$usuario = $i+1;
			}
		}

		$xmlmod = <<EOC;
<?xml version="1.0"?> 
 <xupdate:modifications version="1.0"
                xmlns:xupdate="http://www.xmldb.org/xupdate"> 

		<xupdate:update select="/datos/usuario[$usuario]/latitud"> 
			$latitud 
		</xupdate:update>
		<xupdate:update select="/datos/usuario[$usuario]/longitud"> 
			$longitud
		</xupdate:update>
 </xupdate:modifications> 
EOC

	}

print header( -type => 'application/xhtml+xml' );
print $xmlmod;

my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");

my $enviodatos = HTTP::Request->new(POST => $url);
$enviodatos->content_type('application/xhtml+xml' );
$enviodatos->content($xmlmod);

my $respuesta = $ua->request($enviodatos);
my $content = $respuesta->content();
